Developing compilers for computer software is a difficult task. In particular, finding semantic errors in a compiler is often very difficult. In some situations, the output of one compiler can be compared to the output of another compiler (e.g., a reference compiler) in order to try to determine if a compiler is operating correctly. However, due to the different ways in which a compiler can generate its output (e.g., differences in instructions used, differences in instruction scheduling and register allocation, differences in optimizations, etc.), it may not be possible to directly compare the results, except for simple cases.
Therefore, there exists ample opportunity for improvement in technologies related to comparison of compiler results.